package com.ys.entity.block.btc;

import java.util.List;

/**
 * 比特币验证地址返回的地址信息
 */
public class ValidateAddressInfo {

    private List<String> addresses;
    private String address;
    private boolean ismine;
    private boolean isvalid;
    private boolean iswatchonly;
    private boolean iswitness;
    private String script;
    private String scriptPubKey;
    private String hdmasterkeyid;
    private boolean isscript;
    private String hex;
    private String hdkeypath;
    private EmbeddedEntity embedded;
    private String account;
    private String pubkey;
    private int timestamp;




/*    {
        "isvalid": true,
            "address": "2Myfe6U8w7zDaz3XsFjLLZKxjbJpWrE77jJ",
            "scriptPubKey": "a914466edc69d4086d47d38829499c4a74b007dc1e2487",
            "ismine": true,
            "iswatchonly": false,
            "isscript": true,
            "iswitness": false,
            "script": "witness_v0_keyhash",
            "hex": "001461f2816d309455284d4dd48c985e8518c021dccf",
            "pubkey": "035f8a65e9535e137239385882b2b2f0fdb9af2c27d268a9943422419b8db868cf",
            "embedded": {
        "isscript": false,
                "iswitness": true,
                "witness_version": 0,
                "witness_program": "61f2816d309455284d4dd48c985e8518c021dccf",
                "pubkey": "035f8a65e9535e137239385882b2b2f0fdb9af2c27d268a9943422419b8db868cf",
                "address": "tb1qv8egzmfsj32jsn2d6jxfsh59rrqzrhx0g7t4mz",
                "scriptPubKey": "001461f2816d309455284d4dd48c985e8518c021dccf"
    },
        "addresses": [
        "tb1qv8egzmfsj32jsn2d6jxfsh59rrqzrhx0g7t4mz"
  ],
        "account": "",
            "timestamp": 1522661977,
            "hdkeypath": "m/0'/0'/4'",
            "hdmasterkeyid": "991f00576a2847a1aeb6a6d2924e35ba8c4ac3f9"
    }*/



    public void setAddresses(List<String> addresses) {
        this.addresses = addresses;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public void setIsmine(boolean ismine) {
        this.ismine = ismine;
    }

    public void setIsvalid(boolean isvalid) {
        this.isvalid = isvalid;
    }

    public void setIswatchonly(boolean iswatchonly) {
        this.iswatchonly = iswatchonly;
    }

    public void setIswitness(boolean iswitness) {
        this.iswitness = iswitness;
    }

    public void setScript(String script) {
        this.script = script;
    }

    public void setScriptPubKey(String scriptPubKey) {
        this.scriptPubKey = scriptPubKey;
    }

    public void setHdmasterkeyid(String hdmasterkeyid) {
        this.hdmasterkeyid = hdmasterkeyid;
    }

    public void setIsscript(boolean isscript) {
        this.isscript = isscript;
    }

    public void setHex(String hex) {
        this.hex = hex;
    }

    public void setHdkeypath(String hdkeypath) {
        this.hdkeypath = hdkeypath;
    }

    public void setEmbedded(EmbeddedEntity embedded) {
        this.embedded = embedded;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public void setPubkey(String pubkey) {
        this.pubkey = pubkey;
    }

    public void setTimestamp(int timestamp) {
        this.timestamp = timestamp;
    }

    public List<String> getAddresses() {
        return addresses;
    }

    public String getAddress() {
        return address;
    }

    public boolean isIsmine() {
        return ismine;
    }

    public boolean isIsvalid() {
        return isvalid;
    }

    public boolean isIswatchonly() {
        return iswatchonly;
    }

    public boolean isIswitness() {
        return iswitness;
    }

    public String getScript() {
        return script;
    }

    public String getScriptPubKey() {
        return scriptPubKey;
    }

    public String getHdmasterkeyid() {
        return hdmasterkeyid;
    }

    public boolean isIsscript() {
        return isscript;
    }

    public String getHex() {
        return hex;
    }

    public String getHdkeypath() {
        return hdkeypath;
    }

    public EmbeddedEntity getEmbedded() {
        return embedded;
    }

    public String getAccount() {
        return account;
    }

    public String getPubkey() {
        return pubkey;
    }

    public int getTimestamp() {
        return timestamp;
    }

    public class EmbeddedEntity {
        /**
         * witness_program : 61f2816d309455284d4dd48c985e8518c021dccf
         * scriptPubKey : 001461f2816d309455284d4dd48c985e8518c021dccf
         * address : tb1qv8egzmfsj32jsn2d6jxfsh59rrqzrhx0g7t4mz
         * witness_version : 0
         * isscript : false
         * iswitness : true
         * pubkey : 035f8a65e9535e137239385882b2b2f0fdb9af2c27d268a9943422419b8db868cf
         */
        private String witness_program;
        private String scriptPubKey;
        private String address;
        private int witness_version;
        private boolean isscript;
        private boolean iswitness;
        private String pubkey;

        public void setWitness_program(String witness_program) {
            this.witness_program = witness_program;
        }

        public void setScriptPubKey(String scriptPubKey) {
            this.scriptPubKey = scriptPubKey;
        }

        public void setAddress(String address) {
            this.address = address;
        }

        public void setWitness_version(int witness_version) {
            this.witness_version = witness_version;
        }

        public void setIsscript(boolean isscript) {
            this.isscript = isscript;
        }

        public void setIswitness(boolean iswitness) {
            this.iswitness = iswitness;
        }

        public void setPubkey(String pubkey) {
            this.pubkey = pubkey;
        }

        public String getWitness_program() {
            return witness_program;
        }

        public String getScriptPubKey() {
            return scriptPubKey;
        }

        public String getAddress() {
            return address;
        }

        public int getWitness_version() {
            return witness_version;
        }

        public boolean isIsscript() {
            return isscript;
        }

        public boolean isIswitness() {
            return iswitness;
        }

        public String getPubkey() {
            return pubkey;
        }
    }
}
